package Controlador;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.DataInputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.util.List;

import Modelo.Equipo;
import Modelo.Liga;
import Vista.JFEquipo;
import Modelo.Jugador;




public class ControladorEquipo implements ActionListener{
	 private JFEquipo ventanaEquipo;
	 private Liga liga;
	 List<Jugador>  jugadores ;
	 private boolean cargojugador;
	 
	public ControladorEquipo() {
		super();
		ventanaEquipo=new JFEquipo();
		ventanaEquipo.ActionListener(this);
		ventanaEquipo.setLocationRelativeTo(null);
		ventanaEquipo.setVisible(true);
		liga = new Liga();
	}
	
	@Override
	public void actionPerformed(ActionEvent e) {
	
		if (e.getActionCommand().equals("Registrar"))
		{ 
			
			if((ventanaEquipo.getTxtCodigo().getText().equals("") )||
				(ventanaEquipo.getTxtNombre().getText().equals(""))||
				(ventanaEquipo.getTxtAno_fund().getText().equals(""))||
				(ventanaEquipo.getTxtCiudad().getText().equals(""))||
				(ventanaEquipo.getTxtnombre_estadio().getText().equals("")))
			{
				ventanaEquipo.mostrarMensaje("Debe Introducir todos sus datos");
			}
			else
			{
					if (cargojugador)
					{
					String codigo = ventanaEquipo.getTxtCodigo().getText();
					String nombre = ventanaEquipo.getTxtNombre().getText();
					String ano = ventanaEquipo.getTxtAno_fund().getText();
					String ciudad = ventanaEquipo.getTxtCiudad().getText();
					String nom_estadio = ventanaEquipo.getTxtnombre_estadio().getText();
	
					Equipo equipo = new Equipo(codigo,nombre,ano,ciudad,nom_estadio, jugadores);			   
					liga.agregarEquipos(equipo);
					Limpiar();
					
					}
				}
			}
		
		if (e.getActionCommand().equals("Cargar"))
		{		
					try {
						AdministrarCombo();
					} catch (IOException e1) {
						// TODO Auto-generated catch block
						e1.printStackTrace();
					}
		}
		}  
	
	private void AdministrarCombo() throws IOException
	{
		if (ventanaEquipo.getCmbJugadores().getSelectedItem() == "Equipo 1" )
		{
			cargarArchivo(01);
		}
		else if (ventanaEquipo.getCmbJugadores().getSelectedItem() == "Equipo 2")
		{
			cargarArchivo(02);
		}
		else if (ventanaEquipo.getCmbJugadores().getSelectedItem() == "Equipo 3" )
		{
			cargarArchivo(03);
		}
		else if (ventanaEquipo.getCmbJugadores().getSelectedItem() ==  "Equipo 4")
		{
			cargarArchivo(04);
		}
	}
	
	private Jugador[] cargarArchivo(int codigo) throws FileNotFoundException, IOException
	{
		DataInputStream dis; 
		File archivo = new File(codigo+ ".txt");
		Jugador[] arreglo = new Jugador[5]; 
		dis = new DataInputStream(new FileInputStream(archivo));
		for (int i = 0; i < arreglo.length ; i++)
		{
			arreglo[i] = new Jugador();
			arreglo[i].setCedula(dis.readLine());
			arreglo[i].setNombre(dis.readLine());
			arreglo[i].setApellido(dis.readLine());
			arreglo[i].setFecha_nac(dis.readLine());
			arreglo[i].setPosicion(dis.readLine());
		}
		 cargojugador = true;
		 return arreglo;
		 }

	
	private void Limpiar(){
		ventanaEquipo.getTxtCodigo().setText("");
		ventanaEquipo.getTxtNombre().setText("");
		ventanaEquipo.getTxtAno_fund().setText("");
		ventanaEquipo.getTxtCiudad().setText("");
		ventanaEquipo.getTxtnombre_estadio().setText("");
		
	}
}
